package com.song.controller;

import com.song.pojo.Emp;
import com.song.pojo.EmpQueryParam;
import com.song.pojo.Result;
import com.song.service.EmpService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/*
* 员工管理的controller
* */
@Slf4j
@RestController
@RequestMapping("/emps")
public class EmpController {
    @Autowired
    private EmpService empService;
    //查询员工列表
    @GetMapping
    public Result getEmps(EmpQueryParam empQueryParam) {
        log.info("员工列表查询，参数：{}", empQueryParam);
        return Result.success(empService.getEmps(empQueryParam));
    }

    //新增员工信息
    @PostMapping
    public Result addEmp(@RequestBody Emp emp) {
        log.info("新增员工，员工信息：{}", emp);
        Integer res = empService.addEmp(emp);
        if(res ==1){
            return Result.success();
        }else {
            return Result.error("添加失败");
        }

    }
    //批量删除员工信息
    @DeleteMapping
    public Result deleteEmp(@RequestParam List<Integer> ids) {
        log.info("删除员工，员工id：{}", ids);
        if(ids == null || ids.isEmpty()) return Result.error("ids不能为空");
        Integer res = empService.deleteEmp(ids);
        if(res !=0){
            return Result.success();
        }else {
            return Result.error("删除失败");
        }
    }
    //根据id查询员工基本信息+员工工作经历
    @GetMapping("/{id}")
    public Result getEmpAndExpr(@PathVariable Integer id) {
        log.info("根据id查询员工基本信息+员工工作经历，员工id：{}", id);
        return Result.success(empService.getEmpAndExpr(id));
    }
    //修改员工基本信息和工作经历
    @PutMapping
    public Result updateEmpAndExpr(@RequestBody Emp emp) {
        log.info("修改员工基本信息和工作经历，员工信息：{}", emp);
        empService.updateEmpAndExpr(emp);
        return Result.success();
    }

}
